package com.app.system.utils.page;

import com.app.system.jpa.PageBean;
import com.app.system.utils.dataType.IntegerUtils;
import com.app.system.utils.dataType.StringUtils;
import com.google.common.collect.Maps;

import java.util.List;
import java.util.Map;

/**
 * 前端UView ui分页公共方法
 */
@SuppressWarnings("all")
public class UViewUiUtils {

    private static Map map(String code, String msg, PageBean pageBean, Object data) {
        Map result = Maps.newHashMap();
        result.put("code", code);
        result.put("msg", msg);
        result.put("pageNo", IntegerUtils.getNotNull(pageBean.getPageNum()));
        result.put("pageSize", IntegerUtils.getNotNull(pageBean.getPageSize()));
        result.put("hasNext", IntegerUtils.compare(IntegerUtils.getNotNull(pageBean.getPageNum()), IntegerUtils.objectToInteger(pageBean.getTotalCount()),pageBean.getPageSize()));
        result.put("totalCount", pageBean.getTotalCount());
        result.put("data", data);
        return result;
    }

    public static Map page(PageBean pageBean, List<Map> listData) {
        return map("", "", pageBean, listData);
    }

    public static Map page(String code, String msg, PageBean pageBean, List<Map> listData) {
        return map(code, msg, pageBean, listData);
    }

    public static Map page(Integer pageNo,Integer pageSize,String hasNext,Integer totalCount, List<Map> listData) {
        Map result = Maps.newHashMap();
        result.put("code", "");
        result.put("msg", "");
        result.put("pageNo", IntegerUtils.getNotNull(pageNo));
        result.put("pageSize", IntegerUtils.getNotNull(pageSize));
        result.put("hasNext", StringUtils.getNotNull(hasNext));
        result.put("totalCount", IntegerUtils.getNotNull(totalCount));
        result.put("data", listData);
        return result;
    }
}
